add admin/live/goods/list and admin/live/room/list

FFIB 5 years ago
parent
commit
48e49cd3ed
4 changed files with 96 additions and 1 deletions
  1. 42 0
      api/admin_views.py
  2. 4 0
      api/urls.py
  3. 18 0
      live/migrations/0007_auto_20200520_1347.py
  4. 32 1
      live/models.py

+ 42 - 0
api/admin_views.py

@@ -2,6 +2,7 @@
2 2
 
3 3
 import logging
4 4
 
5
+from django.core.paginator import Paginator
5 6
 from django.contrib.auth.hashers import check_password
6 7
 from django.db import transaction
7 8
 from django.db.models import Q
@@ -13,6 +14,7 @@ from account.models import AdministratorInfo
13 14
 from goods.models import GoodsInfo, PackInfo
14 15
 from kol.models import KOLInfo
15 16
 from pay.models import OrderInfo
17
+from live.models import RoomInfo, RoomGoodsInfo, RoomOrderInfo, AnchorInfo, liveGoodsInfo
16 18
 from utils.error.errno_utils import AdministratorStatusCode, OrderStatusCode
17 19
 
18 20
 
@@ -131,3 +133,43 @@ def order_update(request):
131 133
     order.save()
132 134
 
133 135
     return response(200, 'Order Update Success', '订单更新成功')
136
+
137
+def live_goods_list(request):
138
+    admin_id = request.POST.get('admin_id', '')
139
+    page = request.POST.get('page', 1)
140
+    num = request.POST.get('num', 20)
141
+
142
+    try:
143
+        administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
144
+    except AdministratorInfo.DoesNotExist:
145
+        return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
146
+
147
+    goods_list = liveGoodsInfo.objects.all()
148
+    count = goods_list.count()
149
+    goods_list = Paginator(goods_list, num).get_page(page)
150
+    goods_list = [goods.admindata for goods in goods_list]
151
+
152
+    return response(200, 'Live Goods Success', u'直播商品库获取成功', data={
153
+        'goods_list': goods_list,
154
+        'count': count,
155
+    })
156
+
157
+def live_room_list(request):
158
+    admin_id = request.POST.get('admin_id', '')
159
+    page = request.POST.get('page', 1)
160
+    num = request.POST.get('num', 20)
161
+
162
+    try:
163
+        administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
164
+    except AdministratorInfo.DoesNotExist:
165
+        return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
166
+
167
+    rooms = RoomInfo.objects.all()
168
+    count = rooms.count()
169
+    rooms = Paginator(rooms, num).get_page(page)
170
+    rooms = [room.admindata for room in rooms]
171
+
172
+    return response(200, 'Live Goods Success', u'直播商品库获取成功', data={
173
+        'rooms': rooms,
174
+        'count': count,
175
+    })

+ 4 - 0
api/urls.py

@@ -37,6 +37,10 @@ urlpatterns += [
37 37
 
38 38
     url(r'^admin/order/list$', admin_views.order_list, name='order_list'),   # 订单列表
39 39
     url(r'^admin/order/update$', admin_views.order_update, name='order_update'),   # 订单列表
40
+
41
+    # 直播
42
+    url(r'^admin/live/goods/list$', admin_views.live_goods_list, name='live_goods_list'),   # 直播商品库列表
43
+    url(r'^admin/live/room/list$', admin_views.live_room_list, name='live_room_list'),   # 直播商品库列表
40 44
 ]
41 45
 
42 46
 urlpatterns += [

+ 18 - 0
live/migrations/0007_auto_20200520_1347.py

@@ -0,0 +1,18 @@
1
+# Generated by Django 2.2.12 on 2020-05-20 05:47
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('live', '0006_roomuserinfo'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AlterField(
14
+            model_name='roomgoodsinfo',
15
+            name='room_id',
16
+            field=models.CharField(db_index=True, help_text='房间唯一标识', max_length=32, verbose_name='room_id'),
17
+        ),
18
+    ]

+ 32 - 1
live/models.py

@@ -97,6 +97,21 @@ class RoomInfo(BaseModelMixin):
97 97
             'share_img': self.share_img_url,
98 98
         }
99 99
        
100
+    @property
101
+    def admindata(self):
102
+        anchor = AnchorInfo.objects.get(anchor_id=self.anchor_id)
103
+        return {
104
+            'room_id': self.room_id,
105
+            'name': self.name,
106
+            'live_status': self.live_status,
107
+            'end_time': self.end_time,
108
+            'cover_img': self.cover_img_url,
109
+            'anchor_name': self.anchor_name,
110
+            'share_img': self.share_img_url,
111
+            'anchor_id': self.anchor_id,
112
+            'anchor_name': anchor.anchor_name,
113
+            'anchor_avatar': anchor.anchor_avatar_url
114
+        }
100 115
 
101 116
   
102 117
 class liveGoodsInfo(BaseModelMixin):
@@ -141,11 +156,27 @@ class liveGoodsInfo(BaseModelMixin):
141 156
     @property
142 157
     def goods_img_url(self):
143 158
         return upload_file_url(self.goods_img)
159
+    
160
+    @property
161
+    def admindata(self):
162
+        return {
163
+            'goods_id': self.goods_id,
164
+            'wx_goods_id': self.wx_goods_id,
165
+            'audit_id': self.audit_id,
166
+            'audit_status': self.audit_status,
167
+            'goods_img': self.goods_img_url,
168
+            'name': self.name,
169
+            'coverImgUrl': self.coverImgUrl,
170
+            'price_type': self.price,
171
+            'price': self.price,
172
+            'price2': self.price2,
173
+            'url': self.url
174
+        }
144 175
 
145 176
 
146 177
 
147 178
 class RoomGoodsInfo(BaseModelMixin):
148
-    room_id = models.CharField(_('room_id'), max_length=32, help_text='房间唯一标识', db_index=True, unique=True)
179
+    room_id = models.CharField(_('room_id'), max_length=32, help_text='房间唯一标识', db_index=True)
149 180
     anchor_id = models.CharField(_('anchor_id'), max_length=32, blank=True, help_text='主播唯一标识')
150 181
     goods_id = models.CharField(_('goods_id'), max_length=32, blank=True, help_text='商品ID')
151 182
     inventory = models.IntegerField(_('inventory'), default=0, help_text='直播间库存数量')